
//start by loading AllSitesClean.csv

//TABLE 1: Descriptive Statistics

//experimental games
eststo clear 
eststo: estpost tabstat correct_guesses cheat_rate bribe donate_norm if study == "Moscow", statistics(mean sd min max count) columns(statistics)
eststo: estpost tabstat correct_guesses cheat_rate bribe donate_norm if study == "Region", statistics(mean sd min max count) columns(statistics)
eststo: estpost tabstat correct_guesses cheat_rate bribe donate_norm if study == "Ukraine", statistics(mean sd min max count) columns(statistics)

esttab, cells("mean(fmt(2)) sd(fmt(2)) min(fmt(2)) max(fmt(2)) count(fmt(0))") nostar unstack nonote nomtitle nonumber replace label fragment
 

//psm
eststo clear 
eststo: estpost tabstat psm_norm aps_norm cpv_norm com_norm ss_norm if study == "Moscow", statistics(mean sd min max count) columns(statistics)
eststo: estpost tabstat psm_norm aps_norm cpv_norm com_norm ss_norm if study == "Region", statistics(mean sd min max count) columns(statistics)
eststo: estpost tabstat psm_norm aps_norm cpv_norm com_norm ss_norm if study == "Ukraine", statistics(mean sd min max count) columns(statistics)

esttab, cells("mean(fmt(2)) sd(fmt(2)) min(fmt(2)) max(fmt(2)) count(fmt(0))") nostar unstack nonote nomtitle nonumber replace label fragment
 

//demographic and attitudinal
eststo clear 
eststo: estpost tabstat male risk_averse_norm gpa_norm family_inc_norm religion city_size_norm parent_pubsect parent_privsect parent_ngo parent_mil parent_legal dep_pa job_sect if study == "Moscow", statistics(mean sd min max count) columns(statistics)
eststo: estpost tabstat male risk_averse_norm gpa_norm family_inc_norm religion city_size_norm parent_pubsect parent_privsect parent_ngo parent_mil parent_legal dep_pa job_sect if study == "Region", statistics(mean sd min max count) columns(statistics)
eststo: estpost tabstat male risk_averse_norm gpa_norm family_inc_norm religion city_size_norm parent_pubsect parent_privsect parent_ngo parent_mil parent_legal dep_publaw job_sect if study == "Ukraine", statistics(mean sd min max count) columns(statistics)

esttab, cells("mean(fmt(2)) sd(fmt(2)) min(fmt(2)) max(fmt(2)) count(fmt(0))") nostar unstack nonote nomtitle nonumber replace label fragment
 


//REGRESSIONS FOR TABLES 2-4
//run these first; code for tables is below

encode dep_tri, gen(dep_tri_enc)

global controls_moscow male risk_averse_norm gpa_norm family_inc_norm city_size_norm religion parent_pubsect parent_privsect parent_ngo parent_mil parent_legal i.class_yr i.dep_pa
global controls_region male risk_averse_norm gpa_norm family_inc_norm city_size_norm religion parent_pubsect parent_privsect parent_ngo parent_mil parent_legal i.class_yr i.dep_pa
global controls_ukraine male risk_averse_norm gpa_norm family_inc_norm city_size_norm religion parent_pubsect parent_privsect parent_ngo parent_mil parent_legal i.class_yr i.dep_tri_enc i.lab


eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm if study == "Moscow", robust
   estimates store `var'_nocontrols_M
   }
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm if study == "Region", robust
   estimates store `var'_nocontrols_R
   }
   
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_nocontrols_U
   }
   
   //with controls
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm $controls_moscow if study == "Moscow", robust
   estimates store `var'_controls_M
   }
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm $controls_region if study == "Region", robust
   estimates store `var'_controls_R
   }
   
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_controls_U
   }
   


   
  //TABLE 2: PSM AS PREDICTOR OF CORRUPTION
   
  
esttab bribe_nocontrols_M bribe_controls_M bribe_nocontrols_R bribe_controls_R bribe_nocontrols_U bribe_controls_U, ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label drop(*.lab *.class_yr) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)")  /// 
refcat(parent_pubsect "Parent Employed in" 1.dep_pa "Field of Study", nolabel) indicate("Class Year Dummies = 2.class_yr") ///
varlabels(psm_norm "PSM" male "Male" risk_averse_norm "Risk Aversion" gpa_norm "GPA" family_inc_norm "Family Income" city_size_norm "Home City Size" religion "Religious" /// 
parent_pubsect "Public Profession" parent_privsect "Private Profession" parent_ngo "Non-Profit Sector" parent_mil "Military" parent_legal "Legal Profession" ///
1.dep_pa "Public Administration" 1.dep_publaw "Public Law" _cons "Constant" ) ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))


 //TABLE 3: PSM AS PREDICTOR OF DISHONESTY
  
esttab cheat_rate_nocontrols_M cheat_rate_controls_M cheat_rate_nocontrols_R cheat_rate_controls_R cheat_rate_nocontrols_U cheat_rate_controls_U, ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label drop(*.lab *.class_yr) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)")  /// 
refcat(parent_pubsect "Parent Employed in" 1.dep_pa "Field of Study", nolabel) indicate("Class Year Dummies = 2.class_yr") ///
varlabels(psm_norm "PSM" male "Male" risk_averse_norm "Risk Aversion" gpa_norm "GPA" family_inc_norm "Family Income" city_size_norm "Home City Size" religion "Religious" /// 
parent_pubsect "Public Profession" parent_privsect "Private Profession" parent_ngo "Non-Profit Sector" parent_mil "Military" parent_legal "Legal Profession" ///
1.dep_pa "Public Administration" 1.dep_publaw "Public Law" _cons "Constant" ) ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))


 //TABLE 4: PSM AS PREDICTOR OF ALTRUISM
  
esttab donate_norm_nocontrols_M donate_norm_controls_M donate_norm_nocontrols_R donate_norm_controls_R donate_norm_nocontrols_U donate_norm_controls_U, ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label drop(*.lab *.class_yr) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)")  /// 
refcat(parent_pubsect "Parent Employed in" 1.dep_pa "Field of Study", nolabel) indicate("Class Year Dummies = 2.class_yr") ///
varlabels(psm_norm "PSM" male "Male" risk_averse_norm "Risk Aversion" gpa_norm "GPA" family_inc_norm "Family Income" city_size_norm "Home City Size" religion "Religious" /// 
parent_pubsect "Public Profession" parent_privsect "Private Profession" parent_ngo "Non-Profit Sector" parent_mil "Military" parent_legal "Legal Profession" ///
1.dep_pa "Public Administration" 1.dep_publaw "Public Law" _cons "Constant" ) ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))



//REGRESSIONS FOR TABLE 5

gen job_sect_rev = 1-job_sect


// bivariate

eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.job_sect_rev if study == "Moscow", robust
   estimates store `var'_T5_nocontrols_M
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.job_sect_rev if study == "Region", robust
   estimates store `var'_T5_nocontrols_R
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.job_sect_rev if study == "Ukraine", robust cluster(session)
   estimates store `var'_T5_nocontrols_U
   }
   
   //linear combo tests
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.job_sect_rev if study == "Moscow", robust
   lincomest psm_norm + psm_norm#1.job_sect_rev
   estimates store `var'_inter_nocont_M
   }
   
   
      eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.job_sect_rev if study == "Region", robust
   lincomest psm_norm + psm_norm#1.job_sect_rev
   estimates store `var'_inter_nocont_R
   }
   
        eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.job_sect_rev if study == "Ukraine", robust
   lincomest psm_norm + psm_norm#1.job_sect_rev
   estimates store `var'_inter_nocont_U
   }
   
   
   
   // with controls
   
   eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.job_sect_rev $controls_moscow if study == "Moscow", robust
   estimates store `var'_T5_controls_M
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.job_sect_rev $controls_region if study == "Region", robust
   estimates store `var'_T5_controls_R
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.job_sect_rev $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_T5_controls_U
   }
   
   //linear combo tests
     eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.job_sect_rev $controls_moscow if study == "Moscow", robust
   lincomest psm_norm + psm_norm#1.job_sect_rev
   estimates store `var'_inter_cont_M
   }
   
       eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.job_sect_rev $controls_region if study == "Region", robust
   lincomest psm_norm + psm_norm#1.job_sect_rev
   estimates store `var'_inter_cont_R
   }
   
       eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.job_sect_rev $controls_ukraine if study == "Ukraine", robust
   lincomest psm_norm + psm_norm#1.job_sect_rev
   estimates store `var'_inter_cont_U
   }
   
   


//TABLE 5: HETEROGENEOUS EFFECTS BY CAREER PREFERENCES

//Panel A
esttab bribe_T5_nocontrols_M bribe_T5_controls_M bribe_T5_nocontrols_R bribe_T5_controls_R bribe_T5_nocontrols_U bribe_T5_controls_U , ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label keep(psm_norm 1.job_sect_rev 1.job_sect_rev#c.psm_norm) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "$\beta_1$: PSM" 1.job_sect_rev "$\beta_2$: Private Sector" 1.job_sect_rev#c.psm_norm "$\beta_3$: PSM $\times$ Private Sector") ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))

//bottom row of Panel A
esttab bribe_inter_nocont_M bribe_inter_cont_M bribe_inter_nocont_R bribe_inter_cont_R bribe_inter_nocont_U bribe_inter_cont_U, coeflabel((1) "$\beta_1 + \beta_3$") ///
f collabels(none) gaps plain nomtitles ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)) ) ///
noobs

//Panel B
esttab cheat_rate_T5_nocontrols_M cheat_rate_T5_controls_M cheat_rate_T5_nocontrols_R cheat_rate_T5_controls_R cheat_rate_T5_nocontrols_U cheat_rate_T5_controls_U,  ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label keep(psm_norm 1.job_sect_rev 1.job_sect_rev#c.psm_norm) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "$\beta_1$: PSM" 1.job_sect_rev "$\beta_2$: Private Sector" 1.job_sect_rev#c.psm_norm "$\beta_3$: PSM $\times$ Private Sector") ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))

//bottom row of Panel B
 esttab cheat_rate_inter_nocont_M cheat_rate_inter_cont_M cheat_rate_inter_nocont_R cheat_rate_inter_cont_R cheat_rate_inter_nocont_U cheat_rate_inter_cont_U,   coeflabel((1) "$\beta_1 + \beta_3$") ///
f collabels(none) gaps plain nomtitles ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)) ) ///
noobs

//Panel C
esttab donate_norm_T5_nocontrols_M donate_norm_T5_controls_M donate_norm_T5_nocontrols_R donate_norm_T5_controls_R donate_norm_T5_nocontrols_U donate_norm_T5_controls_U , ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label keep(psm_norm 1.job_sect_rev 1.job_sect_rev#c.psm_norm) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "$\beta_1$: PSM" 1.job_sect_rev "$\beta_2$: Private Sector" 1.job_sect_rev#c.psm_norm "$\beta_3$: PSM $\times$ Private Sector") ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))

//bottom row of Panel C
 esttab donate_norm_inter_nocont_M donate_norm_inter_cont_M donate_norm_inter_nocont_R donate_norm_inter_cont_R donate_norm_inter_nocont_U donate_norm_inter_cont_U,  coeflabel((1) "$\beta_1 + \beta_3$") ///
f collabels(none) gaps plain nomtitles ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)) ) ///
noobs



/////////APPENDIX MATERIAL/////////////

//TABLE B.1: CFA 4-FACTOR 

sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(COM -> com1 com2 com3 com4)(SS -> ss1 ss2 ss3 ss4) if study == "Moscow" , stand
estat gof, stats(all)

sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(COM -> com1 com2 com3 com4)(SS -> ss1 ss2 ss3 ss4) if study == "Region" , stand
estat gof, stats(all)

sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(COM -> com1 com2 com3 com4)(SS -> ss1 ss2 ss3 ss4) if study == "Ukraine" , stand
estat gof, stats(all)

//TABLE B.2: CFA 3-FACTOR

sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(SS -> ss1 ss2 ss3 ss4) if study == "Moscow" , stand
estat gof, stats(all)

sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(SS -> ss1 ss2 ss3 ss4) if study == "Region" , stand
estat gof, stats(all)

sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(SS -> ss1 ss2 ss3 ss4) if study == "Ukraine" , stand
estat gof, stats(all)

//TABLE B.3: MULTIGROUP CFA (TESTING FOR METRIC INVARIANCE

encode study, gen(study_enc)

//four factor

//for column 1 of Table B3
sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4) (COM -> com1 com2 com3 com4)(SS -> ss1 ss2 ss3 ss4) ,  group(study_enc)   ///
      variance(APS@1) mean(APS@0)  variance(CPV@1) mean(CPV@0) variance(COM@1) mean(COM@0) variance(SS@1) mean(SS@0)  ginvariant(none) 
	  est store m1
estat gof, stats(all)

//for column 2 of Table B3
sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(COM -> com1 com2 com3 com4)(SS -> ss1 ss2 ss3 ss4) ,  group(study_enc) ///
      variance(APS@1) mean(APS@0)  variance(CPV@1) mean(CPV@0) variance(COM@1) mean(COM@0) variance(SS@1) mean(SS@0)  ginvariant(mcoef) 
	  est store m2
estat gof, stats(all)

//for column 3 of Table B3
lrtest m2 m1  

	 
//three factor
	 
//for column 1 of Table B3
sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(SS -> ss1 ss2 ss3 ss4) ,  group(study_enc)   ///
      variance(APS@1) mean(APS@0)  variance(CPV@1) mean(CPV@0) variance(SS@1) mean(SS@0)  ginvariant(none) 
	  est store m1
estat gof, stats(all)

//for column 2 of Table B3
sem (APS-> aps1 aps2 aps3 aps4)(CPV -> cpv1 cpv2 cpv3 cpv4)(SS -> ss1 ss2 ss3 ss4) ,  group(study_enc) ///
      variance(APS@1) mean(APS@0)  variance(CPV@1) mean(CPV@0)  variance(SS@1) mean(SS@0)  ginvariant(mcoef) 
	  est store m2
estat gof, stats(all)

//for column 3 of Table B3
lrtest m2 m1  
 
 
 
 
//REGRESSIONS FOR TABLES E.1 - E.3



//psm 
 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm  if study == "Moscow", robust 
   estimates store `var'_psm1_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm if study == "Region", robust 
   estimates store `var'_psm1_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_psm1_U
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm $controls_moscow if study == "Moscow", robust 
   estimates store `var'_psm2_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm $controls_region if study == "Region", robust 
   estimates store `var'_psm2_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' psm_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_psm2_U
   }
   
   
   
   
//aps

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm  if study == "Moscow", robust 
   estimates store `var'_aps1_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm if study == "Region", robust 
   estimates store `var'_aps1_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_aps1_U
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm $controls_moscow if study == "Moscow", robust 
   estimates store `var'_aps2_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm $controls_region if study == "Region", robust 
   estimates store `var'_aps2_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_aps2_U
   }
   
   
   //cpv
 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' cpv_norm  if study == "Moscow", robust 
   estimates store `var'_cpv1_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' cpv_norm if study == "Region", robust 
   estimates store `var'_cpv1_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' cpv_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_cpv1_U
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' cpv_norm $controls_moscow if study == "Moscow", robust 
   estimates store `var'_cpv2_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' cpv_norm $controls_region if study == "Region", robust 
   estimates store `var'_cpv2_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' cpv_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_cpv2_U
   }
   
   
      
   //com
 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' com_norm  if study == "Moscow", robust 
   estimates store `var'_com1_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' com_norm if study == "Region", robust 
   estimates store `var'_com1_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' com_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_com1_U
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' com_norm $controls_moscow if study == "Moscow", robust 
   estimates store `var'_com2_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' com_norm $controls_region if study == "Region", robust 
   estimates store `var'_com2_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' com_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_com2_U
   }
   
   
   
        
   //ss
 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' ss_norm  if study == "Moscow", robust 
   estimates store `var'_ss1_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' ss_norm if study == "Region", robust 
   estimates store `var'_ss1_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' ss_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_ss1_U
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' ss_norm $controls_moscow if study == "Moscow", robust 
   estimates store `var'_ss2_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' ss_norm $controls_region if study == "Region", robust 
   estimates store `var'_ss2_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' ss_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_ss2_U
   }
    
   
   
           
   //all
 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm cpv_norm com_norm ss_norm  if study == "Moscow", robust 
   estimates store `var'_all1_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm cpv_norm com_norm ss_norm if study == "Region", robust 
   estimates store `var'_all1_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm cpv_norm com_norm ss_norm if study == "Ukraine", robust cluster(session)
   estimates store `var'_all1_U
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm cpv_norm com_norm ss_norm $controls_moscow if study == "Moscow", robust 
   estimates store `var'_all2_M
   }
   
    eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm cpv_norm com_norm ss_norm $controls_region if study == "Region", robust 
   estimates store `var'_all2_R
   }
   

 eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' aps_norm cpv_norm com_norm ss_norm $controls_ukraine if study == "Ukraine", robust cluster(session)
   estimates store `var'_all2_U
   }
    

//TABLE E.1  - PSM AS PREDICTOR OF CORRUPTION WITH DISAGGREGATED PSM SCALE
	
//Panel A - Moscow
esttab bribe_psm1_M bribe_psm2_M bribe_aps1_M bribe_aps2_M bribe_cpv1_M bribe_cpv2_M bribe_com1_M bribe_com2_M bribe_ss1_M bribe_ss2_M bribe_all1_M bribe_all2_M,  ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Moscow" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(}))

//Panel B - Region
esttab bribe_psm1_R bribe_psm2_R bribe_aps1_R bribe_aps2_R bribe_cpv1_R bribe_cpv2_R bribe_com1_R bribe_com2_R bribe_ss1_R bribe_ss2_R bribe_all1_R bribe_all2_R, ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Region" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 

//Panel C - Ukraine
esttab bribe_psm1_U bribe_psm2_U bribe_aps1_U bribe_aps2_U bribe_cpv1_U bribe_cpv2_U bribe_com1_U bribe_com2_U bribe_ss1_U bribe_ss2_U bribe_all1_U bribe_all2_U,   ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Ukraine" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 



//TABLE E.2  - PSM AS PREDICTOR OF DISHONESTY WITH DISAGGREGATED PSM SCALE

	//Panel A - Moscow
esttab cheat_rate_psm1_M cheat_rate_psm2_M cheat_rate_aps1_M cheat_rate_aps2_M cheat_rate_cpv1_M cheat_rate_cpv2_M cheat_rate_com1_M cheat_rate_com2_M cheat_rate_ss1_M cheat_rate_ss2_M cheat_rate_all1_M cheat_rate_all2_M ,  ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Moscow" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 


//Panel B - Region
esttab cheat_rate_psm1_R cheat_rate_psm2_R cheat_rate_aps1_R cheat_rate_aps2_R cheat_rate_cpv1_R cheat_rate_cpv2_R cheat_rate_com1_R cheat_rate_com2_R cheat_rate_ss1_R cheat_rate_ss2_R cheat_rate_all1_R cheat_rate_all2_R ,   ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Region" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 

	//Panel C - Ukraine
esttab cheat_rate_psm1_U cheat_rate_psm2_U cheat_rate_aps1_U cheat_rate_aps2_U cheat_rate_cpv1_U cheat_rate_cpv2_U cheat_rate_com1_U cheat_rate_com2_U cheat_rate_ss1_U cheat_rate_ss2_U cheat_rate_all1_U cheat_rate_all2_U,     ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Ukraine" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 


//TABLE E.3  - PSM AS PREDICTOR OF ALTRUISM WITH DISAGGREGATED PSM SCALE

	//Panel A - Moscow
esttab donate_norm_psm1_M donate_norm_psm2_M donate_norm_aps1_M donate_norm_aps2_M donate_norm_cpv1_M donate_norm_cpv2_M donate_norm_com1_M donate_norm_com2_M donate_norm_ss1_M donate_norm_ss2_M donate_norm_all1_M donate_norm_all2_M ,  ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Moscow" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 


//Panel B - Region
esttab donate_norm_psm1_R donate_norm_psm2_R donate_norm_aps1_R donate_norm_aps2_R donate_norm_cpv1_R donate_norm_cpv2_R donate_norm_com1_R donate_norm_com2_R donate_norm_ss1_R donate_norm_ss2_R donate_norm_all1_R donate_norm_all2_R ,   ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Region" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 
 

//Panel C - Ukraine
esttab donate_norm_psm1_U donate_norm_psm2_U donate_norm_aps1_U donate_norm_aps2_U donate_norm_cpv1_U donate_norm_cpv2_U donate_norm_com1_U donate_norm_com2_U donate_norm_ss1_U donate_norm_ss2_U donate_norm_all1_U donate_norm_all2_U,   ///
keep(psm_norm aps_norm cpv_norm com_norm ss_norm _cons ) ///
mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)" "(7)" "(8)" "(9)" "(10)" "(11)" "(12)") indicate("Controls = 2.class_yr") ///
varlabels(psm_norm "PSM" aps_norm "APS" cpv_norm "CPV" com_norm "COM" ss_norm "SS" _cons "Constant") ///
se(3) b(3) r2 f collabels(none) gaps plain  ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)))  ///
mgroups("Ukraine" , pattern(1 0 0 0 0 0 0 0 0 0 0 0 0) span prefix(\multicolumn{@span}{c}{) suffix(})) 
 


//TABLE F.1 - MEAN PSM LEVELS BY CAREER PREFERENCES AND FIELD OF STUDY

ttest psm_norm if study == "Moscow", by(job_sect)
ttest psm_norm if study == "Region", by(job_sect)
ttest psm_norm if study == "Ukraine" & dep_tri != "Soc. Science & Other", by(job_sect)

ttest psm_norm if study == "Moscow", by(dep_pa)
ttest psm_norm if study == "Region", by(dep_pa)
ttest psm_norm if study == "Ukraine" & dep_tri != "Soc. Science & Other", by(dep_publaw)


//TABLE F.2 - SECTORAL CAREER PREFERNCES BY FIELD OF STUDY

sum job_sect if study == "Moscow" & dep_pa == 1
sum job_sect if study == "Moscow" & dep_pa == 0

sum job_sect if study == "Region" & dep_pa == 1
sum job_sect if study == "Region" & dep_pa == 0 	

sum job_sect if study == "Ukraine" & dep_tri == "Pub. Law"
sum job_sect if study == "Ukraine" & dep_tri == "Priv. Law"
sum job_sect if study == "Ukraine" & dep_tri == "Soc. Science & Other"


// REGRESSIONS FOR TABLE F.3 - HETEROGENEOUS EFFECTS BY FIELD OF STUDY


//removing department variables from controls
global controls_moscow2 male risk_averse_norm gpa_norm family_inc_norm religion city_size_norm parent_pubsect parent_privsect parent_ngo parent_mil parent_legal i.class_yr 
global controls_region2 male risk_averse_norm gpa_norm family_inc_norm religion city_size_norm parent_pubsect parent_privsect parent_ngo parent_mil parent_legal i.class_yr 
global controls_ukraine2 male risk_averse_norm gpa_norm family_inc_norm religion city_size_norm parent_pubsect parent_privsect parent_ngo parent_mil parent_legal i.class_yr i.lab 

gen dep_notPA = 1 - dep_pa
gen dep_notPubLaw = 1 - dep_publaw
replace dep_notPubLaw = . if dep_tri == "Soc. Science & Other" //limiting analysis only to law students to compare public-oriented to private oriented 


//job preference
// bivariate

eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.dep_notPA if study == "Moscow", robust
   estimates store `var'_PA_M_1
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.dep_notPA if study == "Region", robust
   estimates store `var'_PA_R_1
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.dep_notPubLaw if study == "Ukraine", robust cluster(session)
   estimates store `var'_PL_U_1
   }
   
   
   
     eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.dep_notPA if study == "Moscow", robust 
   lincomest psm_norm + psm_norm#1.dep_notPA
   estimates store `var'_inter_PA_M_1
   } 
   
     eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.dep_notPA if study == "Region", robust 
   lincomest psm_norm + psm_norm#1.dep_notPA 
   estimates store `var'_inter_PA_R_1
   } 
   
   
  eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.dep_notPubLaw if study == "Ukraine", robust cluster(session)
   lincomest psm_norm + psm_norm#1.dep_notPubLaw 
   estimates store `var'_inter_PL_U_1
   } 
   
   
   // with controls
   
  eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.dep_notPA $controls_moscow2 if study == "Moscow", robust
   estimates store `var'_PA_M_2
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.dep_notPA $controls_region2 if study == "Region", robust
   estimates store `var'_PA_R_2
   }
   
eststo clear
foreach var in bribe cheat_rate donate_norm {  
   reg `var' c.psm_norm##i.dep_notPubLaw $controls_ukraine2 if study == "Ukraine", robust cluster(session)
   estimates store `var'_PL_U_2
   }
   
   
   
     eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.dep_notPA $controls_moscow2 if study == "Moscow", robust 
   lincomest psm_norm + psm_norm#1.dep_notPA
   estimates store `var'_inter_PA_M_2
   } 
   
     eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.dep_notPA $controls_region2 if study == "Region", robust 
   lincomest psm_norm + psm_norm#1.dep_notPA 
   estimates store `var'_inter_PA_R_2
   } 
   
   
  eststo clear
foreach var in bribe cheat_rate donate_norm {  
   quietly reg `var' c.psm_norm##i.dep_notPubLaw $controls_ukraine2 if study == "Ukraine", robust cluster(session)
   lincomest psm_norm + psm_norm#1.dep_notPubLaw 
   estimates store `var'_inter_PL_U_2
   } 
   
   
// TABLE F.3 - HETEROGENEOUS EFFECTS BY FIELD OF STUDY


//Panel A
esttab bribe_PA_M_1 bribe_PA_M_2 bribe_PA_R_1 bribe_PA_R_2 bribe_PL_U_1 bribe_PL_U_2 , ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label keep(psm_norm 1.dep_notPA 1.dep_notPA#c.psm_norm 1.dep_notPubLaw 1.dep_notPubLaw#c.psm_norm) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)") indicate("Controls = 2.class_yr") /// 
varlabels(psm_norm "$\beta_1$: PSM" 1.dep_notPA "$\beta_2$: Other Departments" 1.dep_notPubLaw "$\beta_2$: Other Departments" 1.dep_notPA#c.psm_norm "$\beta_3$: PSM $\times$ Other Departments" 1.dep_notPubLaw#c.psm_norm "$\beta_3$: PSM $\times$ Other Departments") ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))

//bottom row of Panel A
esttab bribe_inter_PA_M_1 bribe_inter_PA_M_2 bribe_inter_PA_R_1 bribe_inter_PA_R_2 bribe_inter_PL_U_1 bribe_inter_PL_U_2,  coeflabel((1) "$\beta_1 + \beta_3$") ///
f collabels(none) gaps plain nomtitles ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)) ) ///
noobs


//Panel B
esttab cheat_rate_PA_M_1 cheat_rate_PA_M_2 cheat_rate_PA_R_1 cheat_rate_PA_R_2 cheat_rate_PL_U_1 cheat_rate_PL_U_2, ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label keep(psm_norm 1.dep_notPA 1.dep_notPA#c.psm_norm 1.dep_notPubLaw 1.dep_notPubLaw#c.psm_norm) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)") indicate("Controls = 2.class_yr") /// 
varlabels(psm_norm "$\beta_1$: PSM" 1.dep_notPA "$\beta_2$: Other Departments" 1.dep_notPubLaw "$\beta_2$: Other Departments" 1.dep_notPA#c.psm_norm "$\beta_3$: PSM $\times$ Other Departments" 1.dep_notPubLaw#c.psm_norm "$\beta_3$: PSM $\times$ Other Departments") ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))

//bottom row of Panel B
esttab cheat_rate_inter_PA_M_1 cheat_rate_inter_PA_M_2 cheat_rate_inter_PA_R_1 cheat_rate_inter_PA_R_2 cheat_rate_inter_PL_U_1 cheat_rate_inter_PL_U_2 ,  coeflabel((1) "$\beta_1 + \beta_3$") ///
f collabels(none) gaps plain nomtitles ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)) ) ///
noobs


//Panel C
esttab donate_norm_PA_M_1 donate_norm_PA_M_2 donate_norm_PA_R_1 donate_norm_PA_R_2 donate_norm_PL_U_1 donate_norm_PL_U_2 , ///
se(3) b(3) r2 nogaps star($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) compress unstack replace label keep(psm_norm 1.dep_notPA 1.dep_notPA#c.psm_norm 1.dep_notPubLaw 1.dep_notPubLaw#c.psm_norm) nobaselevels ///
collabels("") nonumbers starlevels($^{\dagger}$ 0.10 $^{*}$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001)  mtitles("(1)" "(2)" "(3)" "(4)" "(5)" "(6)") indicate("Controls = 2.class_yr") /// 
varlabels(psm_norm "$\beta_1$: PSM" 1.dep_notPA "$\beta_2$: Other Departments" 1.dep_notPubLaw "$\beta_2$: Other Departments" 1.dep_notPA#c.psm_norm "$\beta_3$: PSM $\times$ Other Departments" 1.dep_notPubLaw#c.psm_norm "$\beta_3$: PSM $\times$ Other Departments") ///  
mgroups("Moscow" "Region" "Ukraine", pattern(1 0 1 0 1 0 ) span prefix(\multicolumn{@span}{c}{) suffix(}))


//bottom row of Panel C
esttab donate_norm_inter_PA_M_1 donate_norm_inter_PA_M_2 donate_norm_inter_PA_R_1 donate_norm_inter_PA_R_2 donate_norm_inter_PL_U_1 donate_norm_inter_PL_U_2  ,  coeflabel((1) "$\beta_1 + \beta_3$") ///
f collabels(none) gaps plain nomtitles ///
starlevel($^{\dagger}$ 0.10 $^*$ 0.05 $^{**}$ 0.01 $^{***}$ 0.001) ///
cells( b(star fmt(3)) se(par fmt(3)) ) ///
noobs






 
